home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / msflex2a / grid.frm < prev   
Text File  |  1999-09-24  |  16KB  |  505 lines

  1. VERSION 5.00
  2. Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "MSFLXGRD.OCX"
  3. Begin VB.Form BackGrnd 
  4.    AutoRedraw      =   -1  'True
  5.    BorderStyle     =   1  'Fixed Single
  6.    Caption         =   "Test Grid"
  7.    ClientHeight    =   3360
  8.    ClientLeft      =   45
  9.    ClientTop       =   360
  10.    ClientWidth     =   4695
  11.    LinkTopic       =   "Form1"
  12.    MaxButton       =   0   'False
  13.    MinButton       =   0   'False
  14.    Moveable        =   0   'False
  15.    ScaleHeight     =   3360
  16.    ScaleWidth      =   4695
  17.    StartUpPosition =   2  'CenterScreen
  18.    Begin VB.CheckBox AutoReturn 
  19.       Caption         =   "Auto Return to Col. 1"
  20.       Height          =   255
  21.       Left            =   2640
  22.       TabIndex        =   4
  23.       TabStop         =   0   'False
  24.       Top             =   120
  25.       Width           =   1815
  26.    End
  27.    Begin VB.CommandButton Stop 
  28.       Caption         =   "STOP"
  29.       Height          =   375
  30.       Left            =   1920
  31.       TabIndex        =   2
  32.       Top             =   2880
  33.       Width           =   975
  34.    End
  35.    Begin VB.TextBox T1 
  36.       Appearance      =   0  'Flat
  37.       BackColor       =   &H00C0FFFF&
  38.       BorderStyle     =   0  'None
  39.       Height          =   285
  40.       Left            =   2160
  41.       MaxLength       =   20
  42.       TabIndex        =   1
  43.       Top             =   1200
  44.       Visible         =   0   'False
  45.       Width           =   975
  46.    End
  47.    Begin MSFlexGridLib.MSFlexGrid FG1 
  48.       Height          =   2415
  49.       Left            =   240
  50.       TabIndex        =   0
  51.       Top             =   360
  52.       Width           =   4215
  53.       _ExtentX        =   7435
  54.       _ExtentY        =   4260
  55.       _Version        =   393216
  56.       Rows            =   30
  57.       Cols            =   10
  58.       AllowBigSelection=   0   'False
  59.       ScrollTrack     =   -1  'True
  60.       FillStyle       =   1
  61.    End
  62.    Begin VB.Label CellIndicator 
  63.       Appearance      =   0  'Flat
  64.       AutoSize        =   -1  'True
  65.       BackColor       =   &H80000005&
  66.       BorderStyle     =   1  'Fixed Single
  67.       ForeColor       =   &H80000008&
  68.       Height          =   255
  69.       Left            =   240
  70.       TabIndex        =   3
  71.       Top             =   120
  72.       UseMnemonic     =   0   'False
  73.       Width           =   105
  74.    End
  75.    Begin VB.Menu MnuFGridRows 
  76.       Caption         =   "Row Popup"
  77.       Visible         =   0   'False
  78.       Begin VB.Menu MnuFGridAddRow 
  79.          Caption         =   "Add a Row"
  80.       End
  81.       Begin VB.Menu MnuFGridInsRow 
  82.          Caption         =   "Insert a Row"
  83.       End
  84.       Begin VB.Menu MnuFGridDelRow 
  85.          Caption         =   "Delete a Row"
  86.       End
  87.       Begin VB.Menu MnuFGridExtrRow 
  88.          Caption         =   "Extract a Row"
  89.       End
  90.    End
  91.    Begin VB.Menu MnuFGridCols 
  92.       Caption         =   "Col Popup"
  93.       Visible         =   0   'False
  94.       Begin VB.Menu MnuFGridAddCol 
  95.          Caption         =   "Add a Col"
  96.       End
  97.       Begin VB.Menu MnuFGridInsCol 
  98.          Caption         =   "Insert a Col"
  99.       End
  100.       Begin VB.Menu MnuFGridDelCol 
  101.          Caption         =   "Delete a Col"
  102.       End
  103.       Begin VB.Menu MnuFGridExtrCol 
  104.          Caption         =   "Extract a Col"
  105.       End
  106.    End
  107. End
  108. Attribute VB_Name = "BackGrnd"
  109. Attribute VB_GlobalNameSpace = False
  110. Attribute VB_Creatable = False
  111. Attribute VB_PredeclaredId = True
  112. Attribute VB_Exposed = False
  113. 'MSFlexgrid Edit : 9-12-99
  114. 'this is an effective and completely natural looking way
  115. 'to edit data in the MSFlexgrid object. I've chosen to keep
  116. 'all columns the same width that is why I've used .TextMatrix
  117. 'in Form_Load() below rather than .Format$.
  118. 'If you don't care that numbers and chars wind up aligned
  119. 'differently in the columns then remove .ColAlignment(-1)=1
  120. 'in the Form_Load() sub.
  121. 'Move the cell around with the cursor keys or click with
  122. 'the mouse on the destination cell.
  123. 'Starting to type will replace the current value in that cell.
  124. 'If you wish to edit the existing text in a cell then press F2.
  125. 'You can enter a cell, drag the mouse and then start typing and
  126. 'VOILA you fill in all the hi-lited cells. The same thing can
  127. 'be achieved by pressing the SHIFT & CURSOR keys. (This is also
  128. 'an effective way of erasing a whole block of data.)
  129. '<ENTER> key advances to the next cell.
  130. 'If you can improve the code...COOL, let me know.
  131.  
  132. '9-13-99
  133. 'Went through the code and eliminated some dead code from
  134. 'previous versions as well as some typos.
  135. 'Navigtion keys are the usual <Home>, <End>, <Pg Up / Dn>
  136. 'along with their Ctrl alternates
  137.  
  138. '9-14-99
  139. 'added a Cell indicator - may come in handy in BIG Grids
  140. 'Also added a choice button to autom. return the focus
  141. 'to the first column or just go down 1 row
  142. 'similar thing can be accomplished like so:
  143. '( in Incr_Cell() )
  144. '
  145. '   if Fg1.ColIsVisible(1) then
  146. '       FG1.Col=1
  147. '   end if
  148.  
  149. '9-23-99
  150. 'added In-Cell cursor control to move to adjacent cells for
  151. 'up/dn anytime, right/left when cursor pos is either right
  152. 'or leftmost, in cell, respectively. When in the last cell
  153. '(and editing) Right cursor will advance to next row col 1.
  154. 'When in the first cell (and editing) Left cursor will jump
  155. 'to last cell one row up.
  156.  
  157. 'Typing into a cell with existing data OVERWRITES unless you
  158. 'press F2, but if you forget you can now press <ESC> and
  159. 'restore the previous value (before exiting the cell).
  160.  
  161. 'also added Popupmenus for Adding, Deleting, Inserting and
  162. 'Extracting either Rows or Cols.
  163. 'Just put mouse in Col 0 or Row 0 and click Right Mouse Button.
  164. 'Add - means add Row at bottom or Col at end
  165. 'Delete - means del LAST Row or LAST Col
  166. 'Insert - means INSERT a Row / Col at present cursor pos.
  167. 'Extract - means EXTRACT a Row /Col at present cursor pos.
  168. 'If you try to DELETE / EXTRACT a Row / Col that has data
  169. 'in it you will be prompted if you wish to proceed.
  170.  
  171. 'The Popupmenus were created the usual way and then had their
  172. 'Titles set to : Visible = False
  173. '
  174. '9-24-99 minor fix to T1_KeyDown.... Case 27, 37-40
  175. 'otherwise it adds a char to the text in Case Else!
  176.  
  177. 'Now posted as as .vbp file
  178. 'Peter Raddatz - lupo@unix.infoserve.net
  179.  
  180. Private Sub Form_Load()
  181.     Dim y%
  182.     With FG1
  183.     .ColAlignment(-1) = 1
  184.     For y% = 1 To .Cols - 1
  185.         .TextMatrix(0, y%) = "Col " + Str(y%)
  186.     Next
  187.     For y% = 1 To FG1.Rows - 1
  188.         .TextMatrix(y%, 0) = "Row " + Str(y%)
  189.     Next
  190.     .Row = 1
  191.     .Col = 1
  192.     .CellBackColor = &HC0FFFF   'lt. yellow
  193.     BackGrnd.CellIndicator = " " + .TextMatrix(.Row, 0) + " : " + .TextMatrix(0, .Col) + " "
  194.     End With
  195. End Sub
  196.  
  197. Private Sub AutoReturn_Click()
  198.     FG1.SetFocus
  199. End Sub
  200.  
  201. Private Sub FG1_EnterCell()
  202.     BackGrnd.CellIndicator = " " + FG1.TextMatrix(FG1.Row, 0) + " : " + FG1.TextMatrix(0, FG1.Col) + " "
  203.     T1.Visible = False
  204.     FG1.Tag = FG1
  205.     FG1.CellBackColor = &HC0FFFF    'lt. yellow
  206.     FG1.SetFocus
  207. End Sub
  208.  
  209. Private Sub FG1_LeaveCell()
  210.     FG1.CellBackColor = &H80000005  'white
  211. End Sub
  212.  
  213. Private Sub FG1_KeyDown(KeyCode As Integer, Shift As Integer)
  214.     Select Case KeyCode
  215.         Case 113        'F2
  216.             Set_TextBox
  217.     End Select
  218. End Sub
  219.  
  220. Private Sub FG1_KeyPress(KeyAscii As Integer)
  221.     Select Case KeyAscii
  222.         Case 13         'ENTER key
  223.             KeyCode = 0
  224.             INCR_CELL
  225.         Case 8      'BkSpc
  226.             FG1 = Left$(FG1, Len(FG1) - 1)
  227.             Set_TextBox
  228.         Case 27     'Esc - ignore
  229.         Case Else
  230.             FG1 = Chr$(KeyAscii)
  231.             T1 = Chr$(KeyAscii)
  232.             Set_TextBox
  233.     End Select
  234. End Sub
  235.  
  236. Private Sub T1_KeyDown(KeyCode As Integer, Shift As Integer)
  237. Select Case KeyCode
  238.     Case 27     'ESC - OOPS, restore old text
  239.         T1 = FG1.Tag
  240.         T1.SelStart = Len(T1)
  241.     Case 37     'Left Arrow
  242.         If T1.SelStart = 0 And FG1.Col > 1 Then
  243.             FG1.Col = FG1.Col - 1
  244.         Else
  245.             If T1.SelStart = 0 And FG1.Row > 1 Then
  246.                 FG1.Row = FG1.Row - 1
  247.                 FG1.Col = FG1.Cols - 1
  248.             End If
  249.         End If
  250.     Case 38     '